<?php

namespace app\home\controller;

use think\Controller;

class Personal extends Controller
{
    public function personal()
    {
        $this->view->engine->layout(false);
        return view();
    }
    public function do_personal()
    {
        // 获取参数
        $param=input();
        // var_dump($param);
        // 参数检测
        $rule=[
            'username|用户名'=>'require',
            'phone|手机号'=>'require',
            'password|密码'=>'require',
            'email|邮箱'=>'email'
        ];
        $res=$this->validate($param,$rule);
        if($res!==true){
            $this->error($res);
        };
        // 文件上传
        $param['logo']=$this->uploads_logo();
        // 修改数据
        
        \app\home\model\User::update($param,['id'=>$param['id']],true);
        $res=\app\home\model\User::where('id',$param['id'])->find();
        // dump($res);
        session('user_info',$res->toArray());
        // $this->success('修改成功','home/index/index');
        $this->redirect('home/index/index');
    }
    private function uploads_logo()
    {
      // 获取上传的文件
      $file=request()->file('logo');
      // 判断是否上传了文件
      // 如果为空运行error
      if(empty($file)){
          $this->error('没有上传文件');
      }
      // 移动图片到指定的目录下 /public/uploads  ROOT_PATH表示当前目录   DS表示目录分割符/
      // size	上传文件的最大字节
      // ext	文件后缀，多个用逗号分割或者数组                                                 
      $info=$file->validate(['size'=>10*1024*1024,'ext'=>'jpg,png,gif,jpeg'])->move('../public/uploads');
      if($info){
          // 上传成功  拼接图片的访问路径 uploads/20160820/42a79759f284b767dfcb2a0197904287.jpg
          $logo='/uploads/'.$info->getSaveName();
        //   dump($goods_logo);
          // 生成缩略图  \think\Image类 保存
          // 打开图片
        //   $image=\think\Image::open('.'.$logo);
        //   var_dump($image);
          // 生成缩略图 保存图片    thumb后面的两个参数是按照原图的比例生成一个最大为300*250的缩略图并保存为thumb.png    后面的这个$goods_logo可以改变名字从而实现不覆盖前一张图片的效果
        //   $image->save('/'.$logo);
          // 返回图片路径
          return $logo;
      }else{
          // 上传失败
          $error_msg=$file->getError();
          $this->error($error_msg);
      }
    }
}
